<?php

namespace Home\Model;
use Think\Model; 

class UserModel extends Model{
     protected $_validate = array(
        array('username','/^\w{3,}$/','用户名必须3位以上（必须使用字母，数字或下划线）',1,'regex',3),//条件：必须验证 验证时间：新增或更新时都验证即默认值3
        array('username','','名称已经存在',2,'unique',1),//条件：值不为空，时间：新增数据时确保账号不存在
		array('danwei', '/^\w{1,60}$/', '参赛单位必须1-60个字符', 1,'length',3),
        array('userpwd','/^\w{6,12}/','密码必须6-12位（必须使用字母，数字或下划线）',2,'regex'),//条件:值不为空 时间：3 新增和更新时
     
        array('re_userpwd','userpwd','确认密码不正确',2,'confirm'),//callback：当前模型的方法 function：函数  条件：值不为空 时间：新增和更新时.
        //array('verify','require','必须填写验证码',1),//条件：1表示必须验证 s时间：新增和更新数据时
        //array('verify','checkVerify','验证码不正确',1,'callback'),//别忘了最后的附加条件  条件：必须验证 时间：新增和更新数据时
    );

    
    protected $_auto = array(
        //注意凡是在此处自动处理的值，在自动创建数据时都会被创建即使数据表中没有，也就是说自动创建数据此时并没有参考对应的数据表 所以密码的在添加时可以使用自动完成来进行MD5加密，更新时由于不确定是否有值所以不能用自动加密，一旦自动加密可能错把空值加密并更新到数据库。和删除
        //array('user_id','md5',3,'function'),
        //----增加时  必须有值且加密
        array('userpwd','md5',1,'function'), //时间：1增加时 
        //----更新时 1为空忽略 2有值就加密  
        array('userpwd','',2,'ignore'),//时间：2更新时 //更新数据时为空则忽略 如果和更新时的md5加密一起使用就会失效导致无法忽略  而且一般不要把修改密码和修改其他信息混在一起   
    );
}   